Stored Procedures [dbo].[asi_HierarchyResortChildren]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@parentHierarchyKeyuniqueidentifier16
SQL Script
CREATE PROCEDURE [dbo].[asi_HierarchyResortChildren]
    @parentHierarchyKey uniqueidentifier
AS
BEGIN
    SET NOCOUNT ON

    INSERT INTO #Reorder (HierarchyKey) VALUES (@parentHierarchyKey)

    DECLARE @ChildrenTable TABLE
    (
        HierarchyKey uniqueidentifier,
        SortOrder int
    )

    INSERT INTO @ChildrenTable
    SELECT HierarchyKey, SortOrder FROM Hierarchy WHERE ParentHierarchyKey = @parentHierarchyKey

    DECLARE @childHierarchyKey uniqueidentifier
    
    WHILE EXISTS (SELECT 1 FROM @ChildrenTable)
    BEGIN
        SELECT TOP 1 @childHierarchyKey = HierarchyKey FROM @ChildrenTable ORDER BY SortOrder
        EXEC asi_HierarchyResortChildren @childHierarchyKey
        DELETE FROM @ChildrenTable WHERE HierarchyKey = @childHierarchyKey
    END

    SET NOCOUNT OFF
END

GO
Uses
Used By